/* the flip1-th turnover of node n1 > the flip2-th turnover of node n2 */
struct timeorder_t {
	int n1, flip1;
	int n2, flip2;
	int type; /* 0: 1>=2 1: 1>2 */
};
typedef struct timeorder_t timeorder;

/* information for infer */
struct infer {
	int N, L;		/* number of nodes/timesteps */
	int minL, maxL; /* */
	int trigger;	/* 1: first node is a trigger node */
	int model;	/* 0: SIM; 1: SIM + Reliable Trans; 2: SIM + Converence; 3: SIM + Reliable Trans + Converence */
	int *init;	/* initial states */
	int *flips;	/* flips[i]: total number of flips for node i during the process */
	int M;		/* number of the timeorder of the flips */
	timeorder *timeorder;
};
